API 測試可以做為後端API的一道防線, 或是在RD重構的時候, 提供一個保護, 或是平日每天掃一遍, 看enviroment裡面有沒有服務掛掉
先附上圖片
通常自動化QA會根據API文件來做測試, Swagger UI就是很好用的一種,
關鍵資訊有:
http是建立在tcp上面, 就是界面跟界面之間透過網路的一種方式, 溝通方式還有很多, 例如 websocket, tcp socket, RPC呼叫 等等....
但 http request 就是最常見以及最容易使用的其中一種, 也就是大家常說的 RESTful API
因為一般server或是API Gateway, 用 RESTful比較多(就是一般的http request)
http request 根據 RFC2616(https://www.ietf.org/rfc/rfc2616.txt) 訂出的規則, 目前業界常用的
GET (抓取資料 觀念對應 CRUD裡面的 R:read)
POST (新增資料 對應 CRUD C:create)
PUT (修改資料 對應 CRUD U:update)
DELETE (刪除資料 對應 CRUD D:delete)
剛開始不熟建議先用 get來做測試
一個最常做的快速測試:打開瀏覽器 網址裡面輸入 https://google.com, 按下enter
意思就是對 https://google.com 做一個 get 的 http request
另一個常做的快速測試(需安裝好curl): $ curl https://google.com
應該會看到回應
curl https://google.com
postman
安裝 postman
自動化QA會很常使用這個工具, 可以稍微熟悉一下
pip3 install requests
$ cat test_http_request.py
在檔案放入以下內容
import requests
def test_http_request():
res = requests.get('https://google.com')
print(res)
assert res.status_code == 200
$ pytest test_http_request.py --capture=no
預期會 1 passed, 並看到 Response [200]
以上就是最基本的 API test happy pass
都針對 API做200測試, 把路先打通
使用超方便的 fastapi 來完成任務吧
[建議] 直接跟著官往做, 因為寫得很簡單明瞭( https://fastapi.tiangolo.com/ )
官網記得往下滾到 Installation 開始跟
from typing import Union
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: Union[str, None] = None):
return {"item_id": item_id, "q": q}
測試
$ curl http://localhost:8000/items/5?q=somequery
這篇就先簡單介紹到這裡, 等有空把 API server補上再更新多一些例子囉